package com.tiancheng.trade.payment.mapper;

import com.tiancheng.trade.payment.model.SettleFile;
import com.tiancheng.trade.payment.task.ums.bo.SettleFileBo;
import com.tiancheng.trade.payment.vo.admin.SettleFileQueryVo;
import com.tiancheng.trade.payment.vo.api.QueryDateSettleVO;
import com.tiancheng.trade.payment.vo.api.SettleCountAllVO;
import com.tiancheng.trade.payment.vo.api.SettleDetailVO;
import com.tiancheng.trade.payment.vo.api.SettleRefundVO;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author kellen
 * @date 2024-12-09 16:45
 */
@Repository
public interface SettleFileMapper extends TYBaseMapper<SettleFile> {
    /**
     * 批量更新
     *
     * @param submitBOS
     * @return
     */
    int updateBatch(@Param("list") List<SettleFileBo> submitBOS);

    /**
     * 银联清分信息导出汇总查询
     *
     * @param settleFileQueryVo
     * @return
     */
    List<QueryDateSettleVO> queryDateSettle(SettleFileQueryVo settleFileQueryVo);

    /**
     * 清分汇总查询
     *
     * @param ids
     * @return
     */
    List<SettleCountAllVO> listCountAll(@org.apache.ibatis.annotations.Param("ids") List<Long> ids, @Param("merchantCode") String merchantCode);

    /**
     * 清分支付流水查询
     *
     * @param ids
     * @return
     */
    List<SettleDetailVO> listSettleDetail(@org.apache.ibatis.annotations.Param("ids") List<Long> ids, @Param("merchantCode") String merchantCode);

    /**
     * 清分退款流水查询
     *
     * @param ids
     * @return
     */
    List<SettleRefundVO> listRefund(@org.apache.ibatis.annotations.Param("ids") List<Long> ids, @Param("merchantCode") String merchantCode);

    int countDateSettle(SettleFileQueryVo settleFileQueryVo);
}
